package com.daji.concurrency.multithread_synchronized;

/*
    Synchronized 意为 同步的
    由这样一个错误的例子引入：
    两个线程对共享资源（count）加减10000次
    期望的结果是count加了1w次，减了1w次，最终打印的count值应该为0
    但是由于没加锁(Synchronized)，所以会争抢使用该共享资源，导致得不到预期的结果
*/
public class B01_NonSynchronized {
    public static void main(String[] args) throws Exception {
        Thread add = new Thread(()->{
            for (int i=0; i<10000; i++) { Counter1.count += 1; }
        });
        Thread dec = new Thread(()->{
                for (int i=0; i<10000; i++) { Counter1.count -= 1; }
        });
        add.start();
        dec.start();
        add.join();
        dec.join();
        System.out.println(Counter1.count);
    }
}

//count为共享变量
class Counter1 {
    public static int count = 0;
}

